1. Field of the Invention
Embodiments of the invention relate generally to pattern-recognition processors and, more specifically, in certain embodiments, to management of data and results in pattern-recognition processors.
2. Description of the Related Art
In the field of computing, pattern-recognition tasks are increasingly challenging. Ever larger volumes of data are transmitted between computers, and the number of patterns that users wish to identify is increasing. For example, spam or malware are often detected by searching for patterns in a data stream, e.g., particular phrases or pieces of code. The number of patterns increases with the variety of spam and malware, as new patterns may be implemented to search for new variants. Searching a data stream for each of these patterns can form a computing bottleneck. Often, as the data stream is received, it is searched for each pattern, one at a time. The delay before the system is ready to search the next portion of the data stream increases with the number of patterns. Thus, pattern-recognition may slow the receipt of data.
Further, such pattern-recognition processing may include the processing of multiple data streams and performance of other tasks in different orders. Any device performing the pattern-recognition processing may track each data stream and may switch processing from a data stream to another subroutine or function. In some processors for example, switching between data streams and tasks may be accomplished by saving the current state information of the processor into processor storage (e.g., the “stack”). The processor may then execute a subroutine or alternate function, and then restore the state from before the subroutine or alternate function was executed. However, saving and restoring the state information often takes a significant amount of time. Further, larger saving times may be undesirable for devices and/or processors having a large amount of state information.